Any enterprise, but particularly a large enterprise, may accumulate significant quantities of data. From time to time, the enterprise may have a need to execute various transactions that access the accumulated data. The accumulated data may have a time-dimension that may play a role in the transaction. For example, a financial institution may want to determine the effects on a financial portfolio of varying investment strategies—in essence, asking the question, “what if investment strategy B was used rather than actually-used investment strategy A?” Such an analytics transaction, or query, may be difficult to execute efficiently, and without disrupting current data transactions. One way to enhance the efficiency of such a transaction is by implementing an efficient data management system.
A B-tree is a data structure that supports insertion, lookup, deletion, and other operations in such a manner that makes data access operations more efficient. A B-tree begins with a root node, progresses to one or more internal nodes, and ends with one or more leaf nodes. Each leaf and internal node may store a key. A key identifies a record (i.e., data). Intermediate nodes of the B-tree contain pointers to lower level nodes. A search for a particular key (record) performed with a B-tree starts with the root node, and the B-tree is traversed from root node to leaf nodes. Once a leaf node with a particular key is found, the record associated with the key can be retrieved. B-trees may be used with distributed storage and search systems.